package com.demo.java.OD1_50.OD25;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【喊 7 的次数重排】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145535808
 */
public class OdMain {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String[] input = scanner.nextLine().split(" ");  // 读取输入的字符串并按空格分割

        // 如果只有一个数字，直接输出
        if (input.length == 1) {
            System.out.print(input[0]);
            return;
        }

        int[] nums = new int[input.length];  // 存储输入的数字数组
        for (int i = 0; i < nums.length; i++) {
            nums[i] = Integer.parseInt(input[i]);  // 将字符串数组转换为整数数组
        }

        int sum = sum(nums);  // 计算数组的总和

        int[] sevenNumbers = findSevenNumbers(sum);  // 查找符合条件的数字

        int[] result = new int[nums.length];  // 初始化结果数组
        for (int num : sevenNumbers) {  // 遍历符合条件的数字
            int index = (num % nums.length + nums.length - 1) % nums.length;  // 计算对应的索引
            result[index]++;  // 累加该位置的计数
        }

        // 输出最终结果
        for (int i = 0; i < result.length; i++) {
            System.out.print(result[i]);
            if (i != result.length - 1) {
                System.out.print(" ");  // 输出结果时，空格分隔
            }
        }
    }

    // 计算数组元素的和
    public static int sum(int[] nums) {
        int sum = 0;
        for (int num : nums) {
            sum += num;
        }
        return sum;
    }

    // 查找符合条件的所有数字：能被7整除或包含7
    public static int[] findSevenNumbers(int times) {
        int count = 0;
        int num = 1;
        int[] result = new int[times];

        while (count < times) {
            if (num % 7 == 0 || String.valueOf(num).contains("7")) {
                result[count] = num;  // 如果数字符合条件，加入结果数组
                count++;
            }
            num++;  // 检查下一个数字
        }
        return result;  // 返回符合条件的数字数组
    }
}

